<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div>
      <div id="title">
        <button data-url="/center">个人中心</button>
        <button data-url="/news">新闻</button>
        <button data-url="/music">音乐</button>
      </div>
      <div id="view"></div>
    </div>
    <script>
      const oBtns = document.querySelectorAll("#title button");
      const oView = document.getElementById("view");

      //1. 首先创建一个路由表,规定了路由的对应信息
      const routes = [
        { path: "/center", content: "我的主页我做主" },
        { path: "/news", content: "明明我们看的新闻是一样的,为什么我要花钱看" },
        {
          path: "/music",
          content: "周董发新歌了在几个月前",
        },
      ];

      //遍历所有的btns 绑定点击事件
      for (var i = 0; i < oBtns.length; i++) {
        oBtns[i].onclick = function () {
          //获取当前路由跳转的按钮上保存的path信息 然后改变地址栏地址的hash值
          location.hash = this.dataset.url;
        };
      }

      //我们要通过onhashchange事件 监听当前的url的hash值的变化
      window.onhashchange = function (e) {
        // console.log(e);
        //在event事件对象上拿到当前监听的新的hash地址
        const newURL = e.newURL.split("#")[1];

        // console.log("hash地址发生改变了");
        //拿到当前的hash和路由表中的path进行一一对比,更新对应的视图
        routes.forEach((route) => {
          if (route.path === newURL) {
            //更新视图
            oView.textContent = route.content;
          }
        });
      };
    </script>
  </body>
</html>
